package com.cskaoyan.javase.oop2._3sumup;

/**
 * @description: 总结成员变量的赋值方式
 * @author: wuguidong@cskaoyan.onaliyun.com
 **/

/**
 * 成员变量分为:
 *      1,普通成员变量
 *      2,静态成员变量
 *
 *  我们主要研究普通成员变量在创建对象时的赋值方式:
 *      1,默认初始化默认值,最早,第一步
 *      2,显式赋值和构造代码块: 按照代码的书写顺序从上到下执行
 *      3,构造器: 最后,最晚执行
 *   如果加上继承:
 *      子类构造器中的第一行,肯定隐含有super()或者显式的写super(参数)去调用父类构造器,或者有this(参数)去调用自身构造器
 *      这个时候会先去跳转,然后再执行自身构造器
 *      整个过程都是"先父后子"的
 *
 *      父类的构造器先执行,意味着父类的所有赋值方式都在子类赋值方式之前
 *
 *   对于静态成员变量,我们只研究类加载时的赋值方式:
 *      1,默认初始化,默认值,最早,最先
 *      2,显示赋值和静态代码块,谁在代码上面,谁先执行
 *
 *  类加载一定在创建对象之前,如果创建对象时给静态成员赋值了,那么它的取值一定是最终取值
 *
 */
public class Demo {
    public static void main(String[] args) {

    }
}
